﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GFCTP;


namespace GFTradePlat
{
	internal class Sample : Strategy
	{
		private readonly BarSeries MyAvg = new BarSeries();

		//[Parameter("手数")]
		private int _lots = 1;

		private Data dataDay = new Data();

		private SMA ma1;
		private SMA ma2;

		[Parameter("均线1参数")]
		private int maLen1 = 5;

        [Parameter("均线2参数")]
		private int maLen2 = 10;


		public override void Initialize()
		{
			ma1 = new SMA(maLen1);
			ma2 = new SMA(maLen2);
		}

		public override void OnBarUpdate()
		{
			//K线数据:HLOCVI(高低开收量仓)D(时间)Dn(日期yyyymmdd格式的数字)Tn(时间0.hhmmss格式的小数)
			double avg = (H[0] + O[0] + C[0]*1)/4;
			double speculate = V[0]/I[0];
			//自定义序列
			if (CurrentBar > 0)
				avg = MyAvg[1]; //取值
			if (CurrentBar > Math.Max(maLen1, maLen2))
			{
				//序列变量
				if (ma1.Value[2] > ma2.Value[2] && ma1.Value[1] < ma2.Value[1]) //均线死叉
					Console.WriteLine("均线死叉");
			}
			//下单:买开
			Buy(_lots, O[0]);
			//下单:卖平
			Sell(_lots, O[0]);
			//下单:卖开
			SellShort(_lots, O[0]);
			//下单买平
			BuyToCover(_lots, O[0]);
			//策略状态
			//this.AvgEntryPriceLong		//当前持仓平均建仓价格:多头
			//this.AvgEntryPriceShort		//当前持仓平均建仓价格:空头
			//this.BarsSinceEntryLong		//当前持仓首个建仓到当前位置的Bar数:多(从0开始计数)
			//this.BarsSinceEntryShort		//当前持仓首个建仓到当前位置的Bar数:空(从0开始计数)
			//this.BarsSinceExitLong		//最近平仓位置到当前位置的Bar计数:多(从0开始计数)
			//this.BarsSinceExitShort		//最近平仓位置到当前位置的Bar计数:空(从0开始计数)
			//this.BarsSinceLastEntryLong	//当前持仓的最后建仓到当前位置的Bar计数:多(从0开始计数)
			//this.BarsSinceLastEntryShort	//当前持仓的最后建仓到当前位置的Bar计数:空(从0开始计数)
			//this.EntryDateLong			//当前持仓首个建仓时间:多
			//this.EntryDateShort			//当前持仓首个建仓时间:空
			//this.EntryPriceLong			//当前持仓首个建仓价格:多
			//this.EntryPriceShort			//当前持仓首个建仓价格:空
			//this.ExitDateLong				//最近平仓时间:多
			//this.ExitDateShort			//最近平仓时间:空
			//this.ExitPriceLong			//最近平仓价格:多
			//this.ExitPriceShort			//最近平仓价格:空
			//this.LastEntryDateLong		//当前持仓最后建仓时间:多
			//this.LastEntryDateShort		//当前持仓最后建仓时间:空
			//this.LastEntryPriceLong		//当前持仓最后建仓价格:多
			//this.LastEntryPriceShort		//当前持仓最后建仓价格:空
			//this.PositionLong				//当前持仓手数:多
			//this.PositionShort			//当前持仓手数:空
			//this.PositionProfitLong		//当前持仓浮动盈亏:多
			//this.PositionProfitShort		//当前持仓浮动盈亏:空
			//this.PositionNet				//当前持仓手数:净
			//this.PositionProfit			//当前持仓浮动盈亏:净
			//this.InstrumentID				//合约
			//this.Interval					//周期数
			//this.IntervalType				//周期类型:0-tick(保留);1-秒(保留);2-分;3-时;4-天;5-周;6-月;7-年
			//this.Name						//策略名
			//this.CurrentBar				//当前K线索引(从0开始)
			//this.Tick						//实行行情(无数据时为UpdateTime == null)
			//this.Operations				//报单操作
		}
	}
}